﻿
namespace VisitorsApp.Web.EF
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies aspnet_UsersMetadata as the class
    // that carries additional metadata for the aspnet_Users class.
    [MetadataTypeAttribute(typeof(aspnet_Users.aspnet_UsersMetadata))]
    public partial class aspnet_Users
    {

        // This class allows you to attach custom attributes to properties
        // of the aspnet_Users class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class aspnet_UsersMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private aspnet_UsersMetadata()
            {
            }

            public Guid ApplicationId { get; set; }

            public Nullable<int> Credits { get; set; }

            public EntityCollection<Folder> Folders { get; set; }

            public bool IsAnonymous { get; set; }

            public DateTime LastActivityDate { get; set; }

            public string LoweredUserName { get; set; }

            public string MobileAlias { get; set; }

            public Guid UserId { get; set; }

            public string UserName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FolderMetadata as the class
    // that carries additional metadata for the Folder class.
    [MetadataTypeAttribute(typeof(Folder.FolderMetadata))]
    public partial class Folder
    {

        // This class allows you to attach custom attributes to properties
        // of the Folder class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FolderMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FolderMetadata()
            {
            }

            public aspnet_Users aspnet_Users { get; set; }

            public int FolderID { get; set; }

            public string FolderName { get; set; }

            public EntityCollection<Image> Images { get; set; }

            public Guid UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ImageMetadata as the class
    // that carries additional metadata for the Image class.
    [MetadataTypeAttribute(typeof(Image.ImageMetadata))]
    public partial class Image
    {

        // This class allows you to attach custom attributes to properties
        // of the Image class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ImageMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ImageMetadata()
            {
            }

            public string Description { get; set; }

            public Folder Folder { get; set; }

            public int FolderID { get; set; }

            public byte[] ImageData { get; set; }

            public int ImageID { get; set; }

            public string ImageName { get; set; }

            public bool IsPublic { get; set; }
        }
    }
}
